﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DFGK_WMS.Model.Models.PDA
{
    public class InstructCriteriaModel
    {
        /// <summary>
        /// 指令Id
        /// </summary>
        public int? Id
        {
            get;
            set;
        }
        /// <summary>
        /// 库房编码
        /// </summary>
        public string WarehouseCode
        {
            get; set;
        }

        /// <summary>
        /// 垛入库存储Id
        /// </summary>
        public int? StackingStorageId
        {
            get;
            set;
        }

        /// <summary>
        /// 指令类型：0-入库；1-出库；2-移位；3-盘点入库；4-盘点出库；5-拣选入库;6-拣选出库;7-手动上架;8-手动下架
        /// </summary>
        /*
        public EmInstructType? InstructType
        {
            get;
            set;
        }

        /// <summary>
        /// 指令动作，默认输送0
        /// </summary>
        public EmDeviceAction? Action
        {
            get;
            set;
        }

        */
        /// <summary>
        /// 指令状态：0-创建，1-待
        /// ，2-执行中，3-完成，4-执行异常，5-已强制取消任务
        /// </summary>
        public int? Status
        {
            get;
            set;
        }

        /// <summary>
        /// 指令优先级
        /// </summary>
        public int? Priority
        {
            get;
            set;
        }

        /// <summary>
        /// 源位置：可以是货位或者站台编号
        /// </summary>
        public string FromLocation
        {
            get;
            set;
        }

        /// <summary>
        /// 预计目的地址
        /// </summary>
        public string ExpectedToLocation
        {
            get;
            set;
        }

        /// <summary>
        /// 实际目标位置
        /// </summary>
        public string ToLocation
        {
            get;
            set;
        }

        /// <summary>
        /// 按项目需求，客户定制的垛条码
        /// </summary>
        public string PalletBarcode
        {
            get;
            set;
        }

        /// <summary>
        /// WCS上报的扫描到的条码，可能与垛号不一样，用于指令完成快速查询
        /// </summary>
        public string ScanedBarcode
        {
            get;
            set;
        }

        /// <summary>
        /// 指令执行顺序
        /// </summary>
        public int? InstructIndex
        {
            get;
            set;
        }

        /// <summary>
        /// 任务数量
        /// </summary>
        public decimal? QTY
        {
            get;
            set;
        }

        /// <summary>
        /// 
        /// </summary>
        public decimal? FinishedQTY
        {
            get;
            set;
        }


        /// <summary>
        /// 工作设备类型：1-线体；2-AGV；3-扫描专机（入库）；4-扫描专机（盘点）；5-叠盘专机；6-拆盘专机（出库）；7-人工拣选口（出库）；8-拆盘专机（入库）
        /// </summary>
        /*
        public EmWorkDeviceType? WorkDeviceType
        {
            get;
            set;
        }
        */

        /// <summary>
        /// 是否发送成功
        /// </summary>
        public bool? IsSendSuccess
        {
            get; set;
        }

        /// <summary>
        /// 发送状态：-1：未发送；0：发送失败；1：发送成功
        /// </summary>
        public int? SendStatus
        {
            get; set;
        }

        //public int? RelatedOrderId
        //      {
        //	get;set;
        //      }

        /// <summary>
        /// 订单明细
        /// </summary>
        public int? RelatedOrderDetailId
        {
            get; set;
        }

        /// <summary>
        /// 动作设备编码
        /// </summary>
        public string DeviceCode
        {
            get; set;
        }
        /// <summary>
        /// 巷道Id
        /// </summary>
        public int? FromRoutewayId
        {
            get; set;
        }

        /// <summary>
        /// 业务类型：1-入库；2-出库；3-盘点;4-移位
        /// </summary>
        public int? BusinessType
        {
            get; set;
        }
        /// <summary>
        /// 业务分组Id
        /// </summary>
        public Guid? BusinessGroupId
        {
            get; set;
        }

        /// <summary>
        /// 单据类型
        /// </summary>
        public int? BillType
        {
            get; set;
        }

        /// <summary>
        /// 正常指令为空，触发生成临时指令的原始仓位
        /// </summary>
        public string RefCellCode
        {
            get; set;
        }
        /// <summary>
        /// 是否挂起
        /// </summary>
        public bool? IsSuspend
        {
            get; set;
        }
        /// <summary>
        /// 指令开始时间
        /// </summary>
        public DateTime? StartTime
        {
            get;
            set;
        }
    }
}
